import _ from "lodash";
import {makeAutoObservable, runInAction} from "mobx";
import {apiQueryRadarList} from "@/common/apis/radar";

interface IQueryParams {
  name?: string;
  page?: number;
  pages?: number;
  size?: number;
  total?: number;
}

export interface IQueryRadar {
  id: string;
  name: string; // 雷达名称
  aliasName: string; // 雷达别名
  description: string; // 描述信息
  road_section: string; // 所属路段
  ip: string; //	雷达ip
  port: string; // 雷达端口
  account: string; // 雷达账号
  password: string; // 雷达密码
  brand: string; // 雷达品牌
  model: string; // 雷达型号
  detectionDistance: number; // 探测距离
  laneNumbers: number; //	车道数
  linkAddress: string; // 链路地址
  status: number; // 雷达状态
  protocol: string; // 对接协议
  deviceNum: string; // 设备编号
  area: string; // 所属区域
  longitude: number; //经度
  latitude: number; //纬度
  roadNum: string; // 道路编号
  pileNo: number; //	桩号
  installLane: string; // 安装车道
  direction: number; //	方向 0 上行 1 下行
  installHeight: number; // 安装高度
  pitchAngle: number; // 俯仰角度
  panAngle: number; // 水平角度
}

type IModalStatus = "create" | "update" | "read" | "none";

class RadarStore {
  constructor() {
    makeAutoObservable(this)
  }

  params: IQueryParams = {};
  pageInfo = {page: 1, size: 10, pages: 0, total: 0};
  loading = false;
  radarList: IQueryRadar[] = [];
  // 弹框状态  "create" | "update" | "read";
  // type: IModalStatus = "read";

  // 获取雷达列表
  queryRadarList = async (params?: any) => {
    this.loading = true;
    const res = await apiQueryRadarList({
      ...this.params,
      ...params,
    });
    console.log(res)
    runInAction(() => {
      if (res.code === 0 && res.data.length > 0) {
        this.radarList = res.data;
      } else {
        this.radarList = [];
      }
      this.loading = false;
    });
  }
}

export default new RadarStore()
